class Transporte < ActiveRecord::Base
  #
  # estados
  #
  ACTIVO      = 'activo'
  INACTIVO    = 'inactivo'
  
  #
  # validaciones
  #
  validates_presence_of :nombre,            :message => '^Tienes que poner tu nombre'
  validates_presence_of :texto,              :message => '^Tienes que poner algo en el texto'
  validates_presence_of :precio,              :message => '^Tienes que poner el precio'
  validates_numericality_of :precio,             :message => '^El precio tiene que ser numérico'
  
  before_save :initialize_estado
  
  def self.por_defecto
    Transporte.find(:all, :order => 'orden asc', :conditions => "estado ='#{Transporte::ACTIVO}'").first
  end
  
  def self.los_activos
    Transporte.find(:all, :order => 'orden asc', :conditions => "estado ='#{Transporte::ACTIVO}'")
  end
  
  def usado_por_algun_pedido?
    Pedido.count( :conditions => ["transporte_id = #{self.id}"] ) > 0
  end
  
  def self.estados
    { 
      'Activo' => Transporte::ACTIVO, 
      'Inactivo' => Transporte::INACTIVO
    }
  end
  
  protected
    def initialize_estado
      if self.new_record?
        self.estado = Transporte::ACTIVO
      end
    end
end